package main
import "fmt"

type Vertex struct {
	X int
	y int
}

func main() {
	//demo1
	// fmt.Println(Vertex{1, 2})//{1 2}

	//demo2
	v := Vertex{1, 2}
	v.X = 2
	fmt.Println(v.X)//2

	//demo3
	//指向结构体的指针可以通过(*p).field访问，也可以之间p.field访问
	p := &v
	p.X = 4
	fmt.Println(v)//{4, 2}

	//demo4
	var (
		v1 = Vertex{1, 2}//创建一个Vertex类型的结构体
		v2 = Vertex{X:1}//Y:0 被隐式赋为0
		v3 = Vertex{}//X:0 Y:0
		p1 = &Vertex{2, 3}//创建一个*Vertex类型的结构体（指针）
	)
	fmt.Println(v1, v2, v3, *p1)//{1 2} {1 0} {0 0} &{2 3}

} 